<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Prop验证</title>
</head>
<body>
<div id="demo"></div>
<script src="../js/vue.js"></script>
<script>
    new Vue({
        el: '#demo'
    });
    Vue.component('example', {
        props: {
            // 基础类型检测 （`null` 意思是任何类型都可以）
            propA: Number,
            // 多种类型 (1.0.21+)
            propM: [String, Number],
            // 必需且是字符串
            propB: {
                type: String,
                required: true
            },
            // 数字，有默认值
            propC: {
                type: Number,
                default: 100
            },
            // 对象/数组的默认值应当由一个函数返回
            propD: {
                type: Object,
                default: function () {
                    return { msg: 'hello' }
                }
            },
            // 指定这个 prop 为双向绑定
            // 如果绑定类型不对将抛出一条警告
            propE: {
                twoWay: true
            },
            // 自定义验证函数
            propF: {
                validator: function (value) {
                    return value > 10
                }
            },
            // 转换函数（1.0.12 新增）
            // 在设置值之前转换值
            propG: {
                coerce: function (val) {
                    return val + ''; // 将值转换为字符串
                }
            },
            propH: {
                coerce: function (val) {
                    return JSON.parse(val); // 将 JSON 字符串转换为对象
                }
            }
        }
    });
</script>
</body>
</html>